table of contents
ACCT(2) | Podręcznik programisty Linuksa | ACCT(2) |
NAZWA¶
acct - włączenie/wyłączenie ewidencjonowania procesów
SKŁADNIA¶
#include <unistd.h> int acct(const char *filename);
DESCRIPTION¶
Funkcja wywołana z nazwą istniejącego pliku jako parametrem, włącza ewidencjonowanie procesów i powoduje dopisywanie do pliku filename informacji o każdym zakończonym procesie. Argument NULL powoduje wyłączenie ewidencjonowania procesów.
WARTOŚĆ ZWRACANA¶
Po pomyślnym zakończeniu zwracane jest 0, w razie błędu zwracane jest -1 i odpowiednio ustawiane errno.
BŁĘDY¶
- EACCES
- Brak prawa do zapisu do podanego pliku.
- EACCES
- Parametr filename nie jest zwykłym plikiem.
- EFAULT
- filename wskazuje poza dostępną dla użytkownika przestrzeń adresową.
- EIO
- Błąd zapisu do pliku filename.
- EISDIR
- filename jest katalogiem.
- ELOOP
- Podczas rozwiązywania filename napotkano zbyt wiele dowiązań symbolicznych.
- ENAMETOOLONG
- Nazwa filename jest za długa.
- ENOENT
- Podany plik nie istnieje.
- ENOMEM
- Brak pamięci.
- ENOSYS
- Rozlicznie procesów nie zostało włączone w czasie kompilacji jądra systemu. Odpowiednim parametrem jądra ustawiającym tę opcję jest CONFIG_BSD_PROCESS_ACCT.
- ENOTDIR
- Składnik filename, który powinien być katalogiem, w rzeczywistości nim nie jest.
- EPERM
- Proces wywołujący tę funkcję ma niewystarczające uprawnienia do włączenia ewidencjonowania procesów.
- EROFS
- Plik filename znajduje się w systemie plików tylko do zapisu.
- EUSERS
- Brak wolnych struktur plikowych w jądrze lub brak pamięci.
ZGODNE Z¶
SVr4 (ale nie POSIX). SVr4 dokumentuje błądy EBUSY, ale nie EISDIR czy ENOSYS. AIX i HPUX również dokumentują EBUSY (próba włączenia ewidencjonowania, podczas gdy jest ono już włączone). Dotyczy to również Solarisa (próba włączenia ewidencjonowania z wykorzystaniem pliku, który jest już używany).
UWAGI¶
W wypadku załamania się systemu, informacje ewidencjonowania procesów nie będą dodane, nie zakończone procesy nigdy nie będą zaewidencjonowane.
1998-11-04 | Linux 2.1.126 |